/**
 * 公共的表单提方法
 */
Ext.define("Tg.tx.Action",{
	
	/**
	 * 公共的普通数据提交方法
	 */
	doAction:function(_Obj){
		var _Me = this;
		if(!_Obj.hasOwnProperty("method")){_Obj.method='post';}//操作类型
		if(!_Obj.hasOwnProperty("params")){_Obj.params={};}//操作参数
		if(!_Obj.hasOwnProperty("store")){_Obj.store=false;}
		
		//操作地址
		if(!_Obj.hasOwnProperty("url")){
			Ext.Msg.alert('没有操作地址');
			return false;
		}
		var _Return = false;
		Ext.Ajax.request({
			waitMsg:'正在提交...',
			url:_Obj.url,
			method:_Obj.method,
			params:_Obj.params,
			async: false, 
			success: function (response, opts) {
				var _Result = _TObj(response.responseText);
				//判断执行结果
				if(parseInt(_Result.code) == 200){
					//成功
					//显示操作提示
					if(!_Result.msg){_Result.msg = '操作成功';}
					Ext.toast({html: _Result.msg,title: '提示',width: 200,align: 'br'});
					//判断是否有 store
					if(_Obj.store){
						var _Store = _Obj.store;
					}else if(_Obj.grid){
						var _Store = _Obj.grid.store;
					}
					if(_Store.type == 'tree'){
						_Store.reload({    
						  callback : function(r, options, success) {    
								if (success == true) {
									_Obj.me.expandPath(_Obj.me.getView(),null);
								}
							}
						});
					}else{
						_Store.reload();
					}
					//判断是否有成功函数
					if(_Obj.callback){_Obj.callback;}
					_Return =  true;
				}else{
					//成功
					//显示操作提示
					if(!_Result.msg){
						_Result.msg = '操作失败';
					}
					Ext.toast({html: _Result.msg,title: '提示',width: 200,align: 'br'});
					//判断是否有成功函数
					if(_Obj.error_callback){_Obj.error_callback;}
					_Return = false;
				}
			},
			failure: function (response, opts) {
				Ext.MessageBox.alert('提示', '操作异常');
				_Return = false;
			}
		});
		return _Return;
	},
	
	/**
	 * 获取数据
	 */
	getDataAction:function(_Obj){
		var _Me = this;
		if(!_Obj.hasOwnProperty("method")){_Obj.method='get';}//操作类型
		if(!_Obj.hasOwnProperty("params")){_Obj.params={};}//操作参数
		//操作地址
		if(!_Obj.hasOwnProperty("url")){
			Ext.Msg.alert('没有操作地址');
			return false;
		}
		var _Return = false;
        Ext.Ajax.request({
			waitMsg:'正在提交...',
			url:_Obj.url,
			method:_Obj.method,
			params:_Obj.params,
			async: false,
            success: function (response, options) {
				var _Result = _TObj(response.responseText);
				//判断执行结果
				if(parseInt(_Result.code) == 200){
					//成功
					if(_Obj.callback){_Obj.callback;}
					_Return =  _Result.data;
				}else{
					//成功
					//显示操作提示
					if(!_Result.msg){
						_Result.msg = '获取数据失败!!!';
					}
					Ext.toast({html: _Result.msg,title: '提示',width: 200,align: 'br'});
					//判断是否有成功函数
					if(_Obj.error_callback){_Obj.error_callback;}
				}
            },
            failure: function () {
				Ext.MessageBox.alert('提示', '操作异常');
            }
        });
		return _Return;
	},
	
	/**
	 * 获取数据 并且填充表单
	 */
	getDataToForm:function(_Obj){
		var _Me = this;
		//操作地址
		if(!_Obj.hasOwnProperty("form")){
			Ext.Msg.alert('没有表单对象,请确认');
			return false;
		}
		var _Result = Ext.create('Tg.tx.Action').getDataAction(_Obj);
		if(_Result){
			_Obj.form.setValues(_Result);
		}else{
			_Result = false;
		}
		return _Result;
	},
	/**
	 * 异步提交数据
	 */
	AjaxAction:function(_Obj){
		var _Me = this;
		if(!_Obj.hasOwnProperty("title")){_Obj.title='确认';}
		if(!_Obj.hasOwnProperty("msg")){_Obj.msg='是否确认此操作?';}
		var _Return = false;
		var _Win = Ext.create('Ext.window.Window', {
			title: _Obj.title,
			height: 200,
			width: 300,
			bodyPadding:10,
			html:_Obj.msg,
			bbar: new Ext.Toolbar({height: 45,style: 'background: #5fa2dd;',items: [	
                '->',
                {
                    text:'确认',
                    handler:function(_SubBtn){
						_Return	= Ext.create('Tg.tx.Action').doAction(_Obj);
                        if(_Return){
                        	_SubBtn.up("window").close();
                        }
                    }
                },
                {
                    text:'取消',
                    handler:function(_CloseBtn){
                        _CloseBtn.up("window").close();
                    }
                }
            ]})
		}).show();
		return _Return;
	},
	/**
	 * 下载文件
	 * @param {} jsonObj  参数 json对象
	 * @param {} _url
	 */
	downAction:function(jsonObj,_url){
		//创建一个form对象方便提交数据
		var form = Ext.create('Ext.form.Panel',{});
		form.form.submit({
			url:_url,
			params:jsonObj,
			standardSubmit :true,
			success:function(form,action){
				
			},
			failure:function(form,action){
				Ext.error('下载失败,'+action.result.message);
			}	
		});
	},
	/**
	 * 导出报表
	 * @param {} jsonObj  参数 json对象
	 * @param {} _url
	 */
	exportAction:function(jsonObj,_url,tagetBtn){
		Ext.Msg.show({
		    title: '提示',
		    msg: '<font color=red>确认导出报表?</font>',
		    width: 300,
		    buttons: Ext.Msg.OKCANCEL,
		    animateTarget:tagetBtn,
		    icon: Ext.MessageBox.INFO,
		    fn: function(btn){
	    	   if (btn == 'ok') {
	    	   	  var form = Ext.create('Ext.form.Panel',{});
					form.form.submit({
						url:_url,
						params:jsonObj,
						standardSubmit :true,
						success:function(form,action){
							
						},
						failure:function(form,action){
							Ext.error('导出失败,'+action.result.message);
						}	
					});
				}
		    }
		});
	},
	/**
	 * 搜索方法
	 * @param {} grid   
	 * @param {} obj  json对象参数
	 */
	searchAction:function(_Obj){
		Ext.apply(_Obj.store.proxy.extraParams,_Obj.params);
		_Obj.store.removeAll();	
		_Obj.store.reload();
	},
	
});